package com.hongyi.app.mapper;

import com.hongyi.app.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @author HongYi
 */
public interface UserMapper {

    /**
     * 插入一条用户记录
     *
     * @param user 用户实体
     * @return 操作影响的条目数
     */
    int insert(User user);

    /**
     * 根据id修改一条编号记录
     *
     * @param user
     */
    int updateById(User user);

    /**
     * 根据id删除一条记录
     *
     * @param id
     */
    int deleteById(@Param("id") Integer id);

    /**
     * 根据用户ID查询一条记录，级联一对一该编号和角色
     *
     * @param id return user
     */
    User selectById(Integer id);

    /**
     * 根据用户name查询一条记录，分步一对一查询编号信息和角色信息
     *
     * @param name return user
     */
    User selectByUsername(String name);

    /**
     * 根据用户账号和密码查询一条记用户记录，
     * @param username
     * @param password
     * @return
     */
    User selectByUsernameAndPassword(String username,String password);
    /**
     * 全查用户记录，分步1-1 查询编号信息和角色信息
     */
     List<User>  list();

    /**
     * 通过id批量查询用户记录，分步1-1 查询编号信息和角色信息
     * @param ids
     * @return 查询到的user记录
     */
     List<User> selectByIds(Integer[] ids);

    /**
     * 通过id批量删除用户记录
     * @param ids
     * @return 影响到行数
     */
    int  delectByIds(Integer[] ids);


}
